Spring Framework [Spring Framework] 11강 - static file 처리와 File Upload Static web resource 처리 서버의 처리가 필요 없는 static web resources는 요청 시 서버를 거치지 않고 곧바로 응답이 필요 특정 URL로 요청이 오면 static resource로 인식하고 바로 응답 수행 Spring에서도 static resource와 Dynamic resource를 분리하여, static resources 응답을 빠르게 해줄 수 있도록 지원합... 백엔드JavaSpring FrameworkJava [Spring Framework] 10강 - RESTful API 그런데 RESTful API를 쓴 경우는 URL에 행위가 안써져 있고 단순히 특정 데이터 명시가 필요할 경우만 데이터를 명시하고 끝이 납니다. 특정 언어에 종속되지 않으며, 대부분의 프로그래밍 언어에서 JSON 포맷의 데이터를 핸들링 할 수 있는 라이브러리를 제공 Java에서 Jackson 라이브러리 의존성을 추가하면, 별다른 작업 없이 JSON 데이터를 Java 객체로 자동으로 변환시켜줍니... 백엔드JavaSpring FrameworkJava [Spring Framework] 9강 - HTTP 파라미터 처리 HTTP 요청 파라미터 처리 HTTP 요청 파라미터를 자바 객체로 변환하는 기능인 Command 객체를 사용할 수 있다. @RequestParam 어노테이션을 이용한 요청 파라미터 구하기 하지만 @RequestParam(value="id", required=false, defaultValue="") 이런식으로 작성하면 null값으로 바꿔줍니다. "required=false" ---> 파라미터... 백엔드JavaSpring FrameworkJava Spring 프레임워크란❔ Spring Framework는 Java 애플리케이션 개발을 위한 포괄적인 인프라 지원을 제공하는 Java 플랫폼이다. Spring은 인프라를 처리하므로 애플리케이션에 집중할 수 있다. 복잡한 Enterprise 서비스를 개발하는데 복잡한 비즈니스 로직과 Low-level의 처리를 분리시켜 개발자로 하여금 비즈니스 로직에만 집중할 수 있게 만들어 주었다. EJB에서의 문제점은 비즈니스 obj... web frameworkSpring웹 프레임워크java app웹 개발Java FrameworkSpring FrameworkJava Framework [Spring] @Transactional 어노테이션 상속 Spring Framework 프로젝트에서 적용되던 @Transactional 어노테이션이 Spring Boot 프로젝트에서 적용되지 않는 문제 발견 Spring Framework 의 경우 JDK Dynamic Proxy(인터페이스 기반) 로 Proxy 를 생성하고 Spring Boot 의 경우 CGLib(클래스 기반) 로 Proxy 를 생성한다. CGLib 으로 처리 시, 인터페이스에 선언... Spring bootSpringaopSpring FrameworkSpring Spring been lifecycle Spring Bean 라이프 사이클에 대해 알아본다. Spring에서는 Spring Container, IoC Container라는 개념을 사용한다. Spring Container는 Spring Framework의 핵심부에 위치하며, 객체 주입을 이용하여 Application을 구성하는 Component들을 관리한다. 이때 Spring Container에서 생성되는 객체를 Bean이라고 한다... Spring FrameworkSpring Framework Simple BBS 애플리케이션 배포 #4 지난번 SimpleTodoList 애플리케이션을 진행하면서 적용했던 스프링 시큐리티를 이번에는 MVC 기반 애플리케이션인 SimpleBBS에도 적용하는 것이 주 목적이었는데 확실히 까다로운 부분이 많았지만 결과적으로 잘 적용할 수 있었다. 그리고 인증, 인가도 JWT와 이에 저장된 사용자 정보를 이용했기 때문에 스프링 시큐리티의 로그인, 로그아웃 기능을 별로 활용할 수 없었는데 이번 Simp... Spring Frameworkspring securitySpring Framework Spring Framework-12 🚧이제 작성자가 아니면 수정, 삭제를 못하도록 막아보자! 아래와 같이 JSTL c:if 태그를 사용해서 userSession에 저장되있는 email과 글의 작성자의 email이 다르다면 수정, 삭제 버튼이 보이지 않도록 수정합니다. 버튼만 막는다고 요청을 보낼 수 없는 것은 아닙니다. postman과 같은 도구로 부적절한 경로로 요청을 보낼 수도 있습니다. 따라서 이를 막아야합니다. 이를 막... Spring FrameworkSpring Framework Spring Framework-17 🗄 이번엔 인메모리 방식이 아닌 DB에서 유저를 가져와 인증해봅시다! Spring Security에서는 UserDetailService를 이용하여 유저를 조회합니다. 우리는 이를 구현하는 클래스를 만듭니다. 우리의 username은 email이므로 userMapper가 파라미터로 들어온 email로 유저를 조회하여 반환할 수 있도록 만듭니다. UserDetailService가 반환하는 클래스... spring securitySpring FrameworkSpring Framework MultipartProperties의 max-file-size, max-request-size 를 살펴보면 위처럼 전자는 전송되는 개별 파일의 크기를, 후자는 서버측으로 전송된 요청(request) 자체의 크기를 제한한다는 것을 알 수 있다. Spring Boot를 이용하고 있기 때문에 application properties 파일을 이용하여 다음처럼 간단하게 변경할 수 있다. 지금은 크기 제한을 20MB로 올렸기 때문에 확인삼아 약 4MB 정도의 파일을 전송해본 결과 다음처럼 잘 업... webSpring FrameworkSpring Framework
[Spring Framework] 11강 - static file 처리와 File Upload Static web resource 처리 서버의 처리가 필요 없는 static web resources는 요청 시 서버를 거치지 않고 곧바로 응답이 필요 특정 URL로 요청이 오면 static resource로 인식하고 바로 응답 수행 Spring에서도 static resource와 Dynamic resource를 분리하여, static resources 응답을 빠르게 해줄 수 있도록 지원합... 백엔드JavaSpring FrameworkJava [Spring Framework] 10강 - RESTful API 그런데 RESTful API를 쓴 경우는 URL에 행위가 안써져 있고 단순히 특정 데이터 명시가 필요할 경우만 데이터를 명시하고 끝이 납니다. 특정 언어에 종속되지 않으며, 대부분의 프로그래밍 언어에서 JSON 포맷의 데이터를 핸들링 할 수 있는 라이브러리를 제공 Java에서 Jackson 라이브러리 의존성을 추가하면, 별다른 작업 없이 JSON 데이터를 Java 객체로 자동으로 변환시켜줍니... 백엔드JavaSpring FrameworkJava [Spring Framework] 9강 - HTTP 파라미터 처리 HTTP 요청 파라미터 처리 HTTP 요청 파라미터를 자바 객체로 변환하는 기능인 Command 객체를 사용할 수 있다. @RequestParam 어노테이션을 이용한 요청 파라미터 구하기 하지만 @RequestParam(value="id", required=false, defaultValue="") 이런식으로 작성하면 null값으로 바꿔줍니다. "required=false" ---> 파라미터... 백엔드JavaSpring FrameworkJava Spring 프레임워크란❔ Spring Framework는 Java 애플리케이션 개발을 위한 포괄적인 인프라 지원을 제공하는 Java 플랫폼이다. Spring은 인프라를 처리하므로 애플리케이션에 집중할 수 있다. 복잡한 Enterprise 서비스를 개발하는데 복잡한 비즈니스 로직과 Low-level의 처리를 분리시켜 개발자로 하여금 비즈니스 로직에만 집중할 수 있게 만들어 주었다. EJB에서의 문제점은 비즈니스 obj... web frameworkSpring웹 프레임워크java app웹 개발Java FrameworkSpring FrameworkJava Framework [Spring] @Transactional 어노테이션 상속 Spring Framework 프로젝트에서 적용되던 @Transactional 어노테이션이 Spring Boot 프로젝트에서 적용되지 않는 문제 발견 Spring Framework 의 경우 JDK Dynamic Proxy(인터페이스 기반) 로 Proxy 를 생성하고 Spring Boot 의 경우 CGLib(클래스 기반) 로 Proxy 를 생성한다. CGLib 으로 처리 시, 인터페이스에 선언... Spring bootSpringaopSpring FrameworkSpring Spring been lifecycle Spring Bean 라이프 사이클에 대해 알아본다. Spring에서는 Spring Container, IoC Container라는 개념을 사용한다. Spring Container는 Spring Framework의 핵심부에 위치하며, 객체 주입을 이용하여 Application을 구성하는 Component들을 관리한다. 이때 Spring Container에서 생성되는 객체를 Bean이라고 한다... Spring FrameworkSpring Framework Simple BBS 애플리케이션 배포 #4 지난번 SimpleTodoList 애플리케이션을 진행하면서 적용했던 스프링 시큐리티를 이번에는 MVC 기반 애플리케이션인 SimpleBBS에도 적용하는 것이 주 목적이었는데 확실히 까다로운 부분이 많았지만 결과적으로 잘 적용할 수 있었다. 그리고 인증, 인가도 JWT와 이에 저장된 사용자 정보를 이용했기 때문에 스프링 시큐리티의 로그인, 로그아웃 기능을 별로 활용할 수 없었는데 이번 Simp... Spring Frameworkspring securitySpring Framework Spring Framework-12 🚧이제 작성자가 아니면 수정, 삭제를 못하도록 막아보자! 아래와 같이 JSTL c:if 태그를 사용해서 userSession에 저장되있는 email과 글의 작성자의 email이 다르다면 수정, 삭제 버튼이 보이지 않도록 수정합니다. 버튼만 막는다고 요청을 보낼 수 없는 것은 아닙니다. postman과 같은 도구로 부적절한 경로로 요청을 보낼 수도 있습니다. 따라서 이를 막아야합니다. 이를 막... Spring FrameworkSpring Framework Spring Framework-17 🗄 이번엔 인메모리 방식이 아닌 DB에서 유저를 가져와 인증해봅시다! Spring Security에서는 UserDetailService를 이용하여 유저를 조회합니다. 우리는 이를 구현하는 클래스를 만듭니다. 우리의 username은 email이므로 userMapper가 파라미터로 들어온 email로 유저를 조회하여 반환할 수 있도록 만듭니다. UserDetailService가 반환하는 클래스... spring securitySpring FrameworkSpring Framework MultipartProperties의 max-file-size, max-request-size 를 살펴보면 위처럼 전자는 전송되는 개별 파일의 크기를, 후자는 서버측으로 전송된 요청(request) 자체의 크기를 제한한다는 것을 알 수 있다. Spring Boot를 이용하고 있기 때문에 application properties 파일을 이용하여 다음처럼 간단하게 변경할 수 있다. 지금은 크기 제한을 20MB로 올렸기 때문에 확인삼아 약 4MB 정도의 파일을 전송해본 결과 다음처럼 잘 업... webSpring FrameworkSpring Framework